public static void readStringXml() {  
        // Document doc = null;  
        try {  
            // 读取并解析XML文档  
            // SAXReader就是一个管道，用一个流的方式，把xml文件读出来  
            SAXReader reader = new SAXReader(); // User.hbm.xml表示你要解析的xml文档  
            InputStream in = Thread.currentThread().getContextClassLoader()  
                    .getResourceAsStream("NewFile.xml");  
            Document doc = reader.read(in);  
            Element rootElt = doc.getRootElement(); // 获取根节点  
            System.out.println("根节点：" + rootElt.getName()); // 拿到根节点的名称  
  
            for (int i = 0; i < rootElt.nodeCount(); i++) {  
                Node node = rootElt.node(i);  
                if (node instanceof Element) {  
                    Element elementTemp = (Element) node;  
                    System.out.println("二级节点do：" + node.getName()); // 拿到第一个二级节点的名称do  
                    // 取得二级节点do的type和path属性的值  
                    for (Iterator iter = elementTemp.attributeIterator(); iter  
                            .hasNext();) {  
                        Attribute item = (Attribute) iter.next();  
                        System.out.println("二级节点do的：" + item.getName() + "为"  
                                + item.getValue()); // 拿到二级节点的path和type  
                    }  
                    // 获取二级节点的下面的子节点forward（三级节点）  
                    for (Iterator iterroot2 = elementTemp.elementIterator(); iterroot2  
                            .hasNext();) {  
                        Element root22 = (Element) iterroot2.next(); // 得到一个二级节点  
                        System.out.println("三级节点forward：" + root22.getName());  
                        System.out.println("三级节点forward的值：" + root22.getText()); // 获取forward的值  
                        List attrList = root22.attributes(); // 获取三级节点的属性  
                        // 遍历获取三级节点的属性  
                        for (Iterator iter = attrList.iterator(); iter  
                                .hasNext();) {  
                            Attribute item = (Attribute) iter.next();  
                            System.out.println("三级节点forward的属性："  
                                    + item.getName() + "为" + item.getValue());  
                        }  
                    }  
                }  
            }  
        } catch (DocumentException e) {  
            e.printStackTrace();  
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  